iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

使用 DVWA 與 Kali Linux 的攻防學習系列 第 19

【Day 19】解同源政策 (Same-Origin Policy) 與 CORS

  • 分享至 

  • xImage
  •  

我要學習的理論概念:

同源政策 (SOP): 我要牢記這是瀏覽器最核心的安全機制,它限制了來自不同「來源」(協定、主機、埠號)的腳本互動,以保護我的資料。

SOP 的重要性: 如果沒有 SOP,我在瀏覽 A 網站時,惡意的 B 網站就能讀取 A 網站的資料。

信任邊界 (Trust Boundary): SOP 是瀏覽器實現的一個核心安全模型,它定義了「來源」(Origin) - 由 (scheme, host, port) 組成的元組 - 作為信任邊界。

SOP 限制的具體行為: SOP 主要限制由腳本 (Script) 發起的跨源 HTTP 請求的「讀取」能力。例如,a.com 的 JavaScript 使用 XMLHttpRequest 或 Fetch API 請求 b.com 的資源。請求本身會被瀏覽器發送,但 b.com 的回應主體會被瀏覽器攔截,不允許 a.com 的腳本讀取,除非 b.com 明確授權。

SOP 不限制的行為: SOP 不限制資源的「嵌入」,如 , , 。它也不限制跨源的「寫入」操作,例如 提交。這個特性是 CSRF 攻擊的根本成因。

跨域資源共享 (CORS): 是一種「例外管理」機制。伺服器可以透過特定的 HTTP 標頭,告訴瀏覽器:「我允許來自某個特定來源的跨域請求」
CORS (Cross-Origin Resource Sharing) 機制: CORS 是一種伺服器端的機制,用來「放鬆」SOP 的限制。

簡單請求 (Simple Requests): 對於某些請求(如特定 GET, HEAD, POST),瀏覽器會直接發送,並在請求中加入 Origin 標頭。伺服器若允許,需在回應中包含 Access-Control-Allow-Origin 標頭。

預檢請求 (Preflight Requests): 對於會修改伺服器數據的「非簡單」請求(如 PUT, DELETE 或帶有自訂標頭的請求),瀏覽器會先發送一個 OPTIONS 方法的預檢請求,詢問伺服器是否允許接下來的實際請求。伺服器通過 Access-Control-Allow-Methods, Access-Control-Allow-Headers 等標頭來回應。

與我的 Burp Suite / DVWA 實戰連結: 我在測試時,必須關注目標伺服器的 CORS 配置。如果 Access-Control-Allow-Origin 或請求中的 Origin 值,且同時允許了憑證 (Access-Control-Allow-Credentials: true),這將構成嚴重安全漏洞,可能導致敏感資料被任意惡意網站讀取。


上一篇
【Day 18】徹底搞懂 HTTP/HTTPS 協定與請求/回應週期
下一篇
【Day 20】入了解 Cookies、Sessions 與狀態管理
系列文
使用 DVWA 與 Kali Linux 的攻防學習30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言